package citylife.geotools.demo;

import javax.swing.JFrame;

import org.geotools.map.MapContent;
import org.geotools.swing.JMapFrame;
import org.geotools.tile.TileService;

import citylife.geotools.demo.tianditu.mkt.TiandituService;

/**
 * 墨卡托投影数据
 * 
 * @author zheng.liu
 *
 */
public class Class8WmtsLab_mkt extends JFrame {

  /**
   * serialVersionUID
   */
  private static final long serialVersionUID = 1L;

  /** 天地图-影像底图之球面墨卡托投影-元数据地址 */
  static final String URL_IMG_W_CAPABILITIES = "http://t1.tianditu.gov.cn/img_w/wmts?request=GetCapabilities&service=wmts&tk=01ebabdef0269b945344a2a492a06b28";

  /** 天地图-影像底图之球面墨卡托投影-瓦片数据地址 */
  static final String URL_IMG_W_TILES = "http://t{random7}.tianditu.gov.cn/img_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=img&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILEMATRIX={z}&TILEROW={x}&TILECOL={y}&tk=01ebabdef0269b945344a2a492a06b28";

  /**
   * Prompts the user for a wms service, connects, and asks for a layer and then and displays its
   * contents on the screen in a map frame.
   */
  public static void main(String[] args) throws Exception {
    MapContent mapcontent = new MapContent();
    // 面板：标题
    mapcontent.setTitle("天地图 img_w/wmts GetTile");
    // 面板图层服务：使用天地图墨卡托专用TiandituService
    TileService tiandituService = new TiandituService("TDT_MKT", URL_IMG_W_TILES);
    // 图层渲染：使用异步多线程请求
    mapcontent.addLayer(new Class8WmtsAsyncTileLayer(tiandituService));

    /*
     * TiandituTile中有重要注释，请参考
     */

    // Now display the map
    JMapFrame frame = new JMapFrame(mapcontent);
    frame.setSize(800, 600); // 请注意面板尺寸的限制：过大尺寸会造成超出默认瓦片数量的限制：128，无法取得瓦片显示
    frame.enableStatusBar(true);
    frame.enableToolBar(true);
    frame.initComponents();
    frame.setVisible(true);
  }

}
